/*
 * Sudoku.h
 *
 *  Created on: 20 oct. 2011
 *      Author: alex
 */

#ifndef SUDOKU_H_
#define SUDOKU_H_

typedef struct Sudoku_struct{
	int hauteur;
	int largeur;
	int** tab;
}Sudoku_s;

//			Creation - Liberation
Sudoku_s* creer_sudoku_std( void );
Sudoku_s* creer_sudoku( const int hauteur, const int largeur );
Sudoku_s* copy_sudoku( const Sudoku_s const * sudoku);
void libere_sudoku( Sudoku_s **sudoku );

//			Affichage
void print_Sudoku( const Sudoku_s const * sudoku);

void nouvelle_ligne( Sudoku_s *sudoku, const int ligne );
int place_number( Sudoku_s *sudoku, const int number );
void construit_grille( Sudoku_s *sudoku );
void construit_grille2( Sudoku_s *sudoku );
void vide_grille( Sudoku_s *sudoku );
void vide_grille_number( Sudoku_s *sudoku, const int number );
void troue_grille( Sudoku_s *sudoku );
int supprime_case( Sudoku_s *sudoku );

//			Recherche
int present_dans_colonne( const Sudoku_s const *sudoku, const int colonne, const int recherche );
int present_dans_carre( const Sudoku_s const *sudoku, const int colonne, const int ligne, const int recherche );

#endif /* SUDOKU_H_ */
